我在Delphi 2010中有一个四舍五入的奇数,其中一些数字在取整中四舍五入,但在formatfloat中向上取整。
我完全知道十进制数字的二进制表示形式有时会产生误导性的结果,但是在那种情况下,我希望formatfloat和roundto会给出相同的结果。
我也看到建议,这是应该使用“ Currency”的东西,但是正如您在下面看到的,Currency和Double给出的结果相同。
program testrounding;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,Math;
var d:Double;
c:Currency;
begin
d:=534.50;
c:=534.50;
writeln('Format: ' +formatfloat('0',d));
writeln('Roundto: '+formatfloat('0',roundto(d,0)));
writeln('C Format: ' +formatfloat('0',c));
writeln('C Roundto: '+formatfloat('0',roundto(c,0)));
readln;
end.
Run Code Online (Sandbox Code Playgroud)
结果如下:
Format: 535
Roundto: 534
C Format: 535
C Roundto: 534
Run Code Online (Sandbox Code Playgroud)
我已经看过为什么RoundTo(87.285,-2)=> 87.28的结果,建议的补救措施似乎并不适用。
我正在研究使用 Google 钱包通过 Web/jwt 界面存储条形码(用于电子处方,如果重要的话)的可行性。
https://codelabs.developers.google.com/add-to-wallet-web#0
仔细遵循所有说明(包括“创建临时发行者帐户和示例类”),并将 issuesrid 和 classid 插入代码(以及 key.json 文件的正确路径)并添加 createPassAndToken ...失败并出现“403 Permission Denied”错误。
我找不到任何关于可能导致此问题的帮助。
一个可能的问题是,临时发行人帐户中返回的“Pass Class Id”采用 {$issuer_id}.{guid} 形式,并且示例 app.js 中的内部代码将 Issuer_id 作为请求的一部分前置,这导致我相信 class_id 应该只设置 guid,但我已经尝试了两种方法,但没有产生任何影响。
稍微有点恼火的是,所有指令都假设是 Linux 命令行,而我使用的是 Windows,但纠正起来并不困难。
任何帮助表示赞赏。