How to format fprintf with 2 decimals
594 次查看(过去 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 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!