我想根据测量值打印字符串,但将其限制为2位数字。我为此使用 MeasurementFormatter 。
var beans:Measurement = Measurement(value: 20.22321, unit: UnitMass.milligrams) // "20.22321 mg"
let formatter = MeasurementFormatter()
formatter.numberFormatter.maximumFractionDigits = 2
let label = formatter.string(from: beans) // 0 lb
我期望20.22 mg
结果不是0 lb
。我的错在哪里
您需要将MeasurementFormatter属性unitOption设置为.providedUnit
let beans = Measurement(value: 20.22321, unit: UnitMass.milligrams) // "20.22321 mg"
let formatter = MeasurementFormatter()
formatter.unitOptions = .providedUnit
formatter.numberFormatter.maximumFractionDigits = 2
let label = formatter.string(from: beans) // "20.22 mg"
问题内容: 我正在处理应用程序中的许多双精度值,是否有任何简单的方法来处理Java中十进制值的格式? 还有其他比这更好的方法了吗 我基本上想做的是格式化double值,例如 问题答案: 实际上,你的模式有错误。你想要的是: 注意,恰好是两个小数位。 如果你使用(表示“可选”数字),它将删除尾随的零-即 ;仅打印,而不是。
使用 toLocaleString() 将浮点数转换为 Decimal mark 格式。 将整数部分转化为用逗号分隔的字符串。 const toDecimalMark = num => num.toLocaleString('en-US'); toDecimalMark(12305030388.9087); // "12,305,030,388.909"
我想用国际单位制将一个整数格式化为3位有效数字。例如: 下面是我对一个函数的粗略修改,仍然不能满足我的所有测试。我遇到的问题涉及检测何时将四舍五入到,因此需要在末尾少一个小数点。
问题内容: 我希望实数是例如12.92,而不是12.9241。有可能这样做吗? 问题答案: 在PHP中,尝试 :
问题内容: 我需要将浮点数格式化为“ n”个小数位。 试图使用BigDecimal,但返回值不正确… 我需要返回一个浮点数,该浮点数具有我指定的小数位数。 我不需要价值回报 问题答案: 你还可以传递float值,并使用:
问题内容: 我用来优化一个实际问题,答案只能是整数。我当前的代码如下所示: 这样产生: 但是我希望使用整数值对其进行优化(将所有数值四舍五入到最接近的整数并不总是给出最小值)。 有没有办法只使用整数值? (我想我可以创建一个具有所有可能排列的数组,并为每个组合评估f(x),但这似乎不是一个非常优雅或快速的解决方案。) 问题答案: 纸浆溶液 经过研究,我认为您的目标函数不是线性的。我在Python纸