diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index b97c2af..bd17de0 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -1312,7 +1312,7 @@
           WideString trimmed = pFormField->GetValue();
           trimmed.TrimRight();
           trimmed.TrimLeft();
-          dTemp = StringToFloat(trimmed.AsStringView());
+          dTemp = StringToDouble(trimmed.AsStringView());
           break;
         }
         case FormFieldType::kPushButton:
diff --git a/testing/resources/javascript/public_methods.in b/testing/resources/javascript/public_methods.in
index 8fd9ee9..200b8ec 100644
--- a/testing/resources/javascript/public_methods.in
+++ b/testing/resources/javascript/public_methods.in
@@ -480,17 +480,13 @@
       expectEventValue('', "AFSimple_Calculate('MIN', ['Text2', 'Text3'])", 123);
       expectEventValue('', "AFSimple_Calculate('MAX', ['Text2', 'Text3'])", 456);
       expectEventValue('', "AFSimple_Calculate('AVG', 'Text2, Text3')", (123 + 456) / 2);
-      // The next 6 currently have rounding issues. https://crbug.com/611744.
       expectEventValue('', "AFSimple_Calculate('AVG', ['Text4'])", 407.96);
       expectEventValue('', "AFSimple_Calculate('SUM', ['Text4'])", 407.96);
       expectEventValue('', "AFSimple_Calculate('MIN', ['Text4'])", 407.96);
       expectEventValue('', "AFSimple_Calculate('MAX', ['Text4'])", 407.96);
       expectEventValue('', "AFSimple_Calculate('AVG', ['Text2', 'Text4'])", (123 + 407.96) / 2);
       expectEventValue('', "AFSimple_Calculate('SUM', ['Text2', 'Text4'])", 123 + 407.96);
-      // Note: 123 * 407.96 = 50179.08, but Acrobat has rounding artifacts in
-      // its implementation as well. It returns 50179.0799999999994, which is
-      // effectively 50179.08.
-      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text4'])", 50179.0799999999994);
+      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text4'])", 50179.08);
 
       app.alert("**********************");
 
diff --git a/testing/resources/javascript/public_methods_expected.txt b/testing/resources/javascript/public_methods_expected.txt
index b7b60e6..c0ee226 100644
--- a/testing/resources/javascript/public_methods_expected.txt
+++ b/testing/resources/javascript/public_methods_expected.txt
@@ -318,13 +318,13 @@
 Alert: PASS: AFSimple_Calculate('MIN', ['Text2', 'Text3']) = 123
 Alert: PASS: AFSimple_Calculate('MAX', ['Text2', 'Text3']) = 456
 Alert: PASS: AFSimple_Calculate('AVG', 'Text2, Text3') = 289.5
-Alert: FAIL: AFSimple_Calculate('AVG', ['Text4']) = 407.959991, expected 407.96 
-Alert: FAIL: AFSimple_Calculate('SUM', ['Text4']) = 407.959991, expected 407.96 
-Alert: FAIL: AFSimple_Calculate('MIN', ['Text4']) = 407.959991, expected 407.96 
-Alert: FAIL: AFSimple_Calculate('MAX', ['Text4']) = 407.959991, expected 407.96 
-Alert: FAIL: AFSimple_Calculate('AVG', ['Text2', 'Text4']) = 265.479996, expected 265.48 
-Alert: FAIL: AFSimple_Calculate('SUM', ['Text2', 'Text4']) = 530.959991, expected 530.96 
-Alert: FAIL: AFSimple_Calculate('PRD', ['Text2', 'Text4']) = 50179.078949, expected 50179.08 
+Alert: PASS: AFSimple_Calculate('AVG', ['Text4']) = 407.96
+Alert: PASS: AFSimple_Calculate('SUM', ['Text4']) = 407.96
+Alert: PASS: AFSimple_Calculate('MIN', ['Text4']) = 407.96
+Alert: PASS: AFSimple_Calculate('MAX', ['Text4']) = 407.96
+Alert: PASS: AFSimple_Calculate('AVG', ['Text2', 'Text4']) = 265.48
+Alert: PASS: AFSimple_Calculate('SUM', ['Text2', 'Text4']) = 530.96
+Alert: PASS: AFSimple_Calculate('PRD', ['Text2', 'Text4']) = 50179.08
 Alert: **********************
 Alert: PASS: AFSpecial_Format() threw AFSpecial_Format: Incorrect number of parameters passed to function.
 Alert: PASS: AFSpecial_Format(1, 2) threw AFSpecial_Format: Incorrect number of parameters passed to function.
