package cn.iocoder.yudao.module.qcreport.engine;
|
|
/**
|
* 数值输出格式。
|
* <p>
|
* Java 的 {@code String.valueOf(210.0D)} 得到 "210.0",而 JS 的 {@code String(210)} 是 "210"。
|
* 渲染产物({@code @page} 尺寸、绑定值、比较时的文本形态)必须与前端逐字一致,
|
* 否则同一份模板在两端会输出不同的 HTML。
|
*/
|
public final class Numbers {
|
|
/** 双精度能精确表示成整数的上界,超过它就不再当整数处理 */
|
private static final double MAX_SAFE_INTEGER = 9.007199254740992E15;
|
|
private Numbers() {
|
}
|
|
/** 整数值的浮点数收成整数输出(60.0 → "60"),其余原样输出 */
|
public static String toString(double value) {
|
if (Double.isFinite(value) && value == Math.rint(value) && Math.abs(value) <= MAX_SAFE_INTEGER) {
|
return String.valueOf((long) value);
|
}
|
return String.valueOf(value);
|
}
|
|
}
|