How to format fprintf with 2 decimals
조회 수: 190 (최근 30일)
이전 댓글 표시
HI, I have looked at other examples of fprintf, but my formatting on fare(4,75) is off and I am not sure why? fare(4,44) output is correct. Fare (4,75) should be 2.20 (80% of the full fare for 4 miles at 0.80* 2.75) Maybe I have just been looking at this for too long to figure it out.
>> fare(4,44) 2.75 >> fare(4,74) 2.754.00 >>
function price = fare(d, a)
if d <= 1 price2 = 2;
else
price2 = fprintf('%.2f',2 + (min(9, d-1) * 0.25) + (max(0, d-10) * 0.10));
end
if 18 >= a || a >= 60
price2 = fprintf('%.2f',price2*0.80);
end
댓글 수: 2
Adam
2017년 2월 24일
You haven't said what output you are looking for, you also didn't include the output for fare(4,75) in your question or what is wrong about it.
채택된 답변
Jan
2017년 2월 24일
편집: Jan
2017년 2월 24일
If d > 1 you run this:
price2 = fprintf('%.2f',2 + (min(9, d-1) * 0.25) + (max(0, d-10) * 0.10))
fprintf writes the output to the command window and replies the number of written characters, which is 4: '2.75' .
Do not change the type of the variables during the code. Better perform all calculations with numbers at first and display it once at the end:
function price = fare(d, a)
if d <= 1
price2 = 2;
else
price2 = 2 + (min(9, d-1) * 0.25) + (max(0, d-10) * 0.10);
end
if 18 >= a || a >= 60
price2 = price2 * 0.80;
end
fprintf('%.2f', price2);
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!