You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Vala中如何对double/float类型数值进行四舍五入?

Vala浮点数保留两位小数解决方案

方案1:直接格式化输出(最常用)

如果仅需要在输出时展示两位小数,直接使用Vala内置的printf风格格式化语法即可,%.2f格式符会自动对浮点数做四舍五入保留两位小数处理:

var x = 0.10000000000000001;
// 直接打印输出
stdout.printf("%.2f\n", x); // 输出结果:0.10

// 如果需要先获取格式化后的字符串再做后续处理
string res_str = "%.2f".printf(x);
stdout.printf("%s\n", res_str); // 同样输出0.10

方案2:数值层面保留精度

如果需要先得到保留两位小数的浮点数值用于后续计算,可以通过缩放+四舍五入的方式处理:

var x = 0.10000000000000001;
// 先放大100倍做四舍五入,再缩小回原量级
double res_num = Math.round(x * 100) / 100.0;
// 输出验证
stdout.printf("%.2f\n", res_num); // 输出0.10

提示:浮点数本身存在固有精度误差,如果是金额计算这类对精度要求极高的场景,建议使用专门的十进制数值类型处理,避免浮点运算累积出现误差。

内容的提问来源于stack exchange,提问作者pether

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:39:04