LLVM Rounding when double is multiplied by currency
## Summary When targeting LLVM backend, rounding/truncation occurs when multiplying a double with more than 4 decimal places by an currency ## System Information OS tested: Linux, fedora 38 CPU: x86_64, LLVM Compiler: Trunk, latest; Device: PC ## Steps to reproduce Multiply a double with more than 4dp with a currency type ## Example Project Will attach, but generally trivial: ```objectpascal uses Math; var Ccy1, Ccy2 : Currency; Dbl : Double; begin Dbl := 1.50125; Ccy1 := 1000000; Dbl := Dbl * Ccy1; WriteLn('(Double) Dbl * Ccy1 = ', Dbl:6:0, ' expected 1_501_250 SameValue: ', SameValue(Dbl, Double(1501250))); ``` ## What is the current bug behavior? Output is rounded/truncated, 1.50125 \* 1_000_000 = 1_501_200 ## What is the expected (correct) behavior? No rounding in the example cases; consistent with non-LLVM FPC behaviour 1.50125 \* 1_000_000 = 1_501_250 ## Relevant logs and/or screenshots None
issue