Defect #12510
closedIssues PDF export: Spent time/Float-values aren't rounded to 2 digits
Added by Luboš Schrámek over 11 years ago. Updated over 6 years ago.
0%
Description
Hello,
How to simulate problem?- add Spent time column to issues
- modify Spent time in some issue to 2.45
- export table to PDF
There will be a columns Spent time with 2.45000004768372. I hope there are missing some number format func(), can you please fix this problem? I am making these exports for customers and it looks bad.
Thanks.
Files
export.pdf (311 KB) export.pdf | error in pdf | fangzheng (方正), 2012-12-07 07:07 | |
pdf.patch (436 Bytes) pdf.patch | get pretty float values for spent time and estimated time | Filou Centrinov, 2013-02-12 01:44 | |
pdf.rb.patch (531 Bytes) pdf.rb.patch | Filou Centrinov, 2013-03-06 12:36 | ||
web-edit.png (4.52 KB) web-edit.png | Toshi MARUYAMA, 2013-08-05 12:06 | ||
0001-Round-floats-to-2-digits-when-rendering-an-issue-lis.patch (739 Bytes) 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis.patch | Holger Just, 2014-10-29 15:34 | ||
before.png (79.7 KB) before.png | Marius BĂLTEANU, 2017-11-27 01:46 | ||
after.png (63.8 KB) after.png | Marius BĂLTEANU, 2017-11-27 01:46 | ||
0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch (2.21 KB) 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch | Marius BĂLTEANU, 2017-12-06 14:31 |
Related issues
Updated by fangzheng (方正) over 11 years ago
- File export.pdf export.pdf added
Mark. Waiting for solution.
BTW, this issue doesn't occur on CSV.
Updated by Filou Centrinov over 11 years ago
I'm seeing the same problem in Redmine 2.2.1.
In my Database the spent time values is for example 0.1, but the pdf export displays 0.100000001490116.
Updated by Daniel Felix over 11 years ago
Maybe this relates to the float_max like #12680?
Updated by Filou Centrinov over 11 years ago
Daniel Felix wrote:
Maybe this relates to the float_max like #12680?
- 0.1 -> IEEE754 Single precision 32-bit
999999999999999999999999999999 -> IEEE754 Single precision 32-bit
UPDATE: No. It does not relate to #12680.
Updated by Filou Centrinov over 11 years ago
To get pretty float values for spent time and estimated time I created this patch: /lib/redmine/export/ pdf.patch
If the value is empty or zero the pdf cell keeps empty, so you get a better overview on spent and estimated hours.
Could you merge this to redmine?
Updated by Filou Centrinov over 11 years ago
Please, could you fix this with redmine 2.3?
Updated by Daniel Felix over 11 years ago
Filou Centrinov wrote:
UPDATE: No. It does not relate to #12680.
Why not? It seems for me to be again some floating point error, which we've encounter many times in different systems.
Updated by Filou Centrinov over 11 years ago
Daniel Felix wrote:
Why not? It seems for me to be again some floating point error, which we've encounter many times in different systems.
The difference is: In #12680 the number is too big, so the floating precision can not be provided. In this issue we are within the floating precision, so the correct presentation should be provided.
The problem is internal caused by displaying a value with a higher precision then the value originaly had. So 0.1 becomes 0.100000001490116, because the type of variable had a precision of 32bit that allows only 8 positions after decimal point. Therefore this problem can easly fixed by: "%.2f" % value
See: pdf.rb.patch
Updated by Filou Centrinov over 11 years ago
In /lib/redmine/i18n.rb is a function called l_hours
to format hours into a value+label string. If this function would'nt be used in /app/view/issues/show.html.erb you get the same effect of displayed spent time.
So l_hours
fixes the same "bug", but with an additional label.
Updated by Filou Centrinov over 11 years ago
- File pdf.rb.patch pdf.rb.patch added
Updated by Filou Centrinov about 11 years ago
Please fix this. It's a small fix. ... or make it to a candidate.
Updated by Etienne Massip about 11 years ago
- Status changed from New to Confirmed
- Target version set to Candidate for next minor release
I can confirm the defect although I'm not fond of the patch, is it possible to fix every single float value display at once rather than specific attributes?
Edit: confirmed with MRI 1.9.3
Updated by David Lukas Müller about 11 years ago
For the particular issue I've observed that on Redmine 2.3.1 I had the following time entries:
- 3.50h
- 1.25h
- 0.30h (I think I've entered "0:20")
5.05
with Web User Interface (HTML) --> good5.050000011920929
with PDF-Export --> chould be improved"spent_hours":5.050000011920929
with REST API (JSON) usinghttp://myhost/redmine/issues/1234.json
--> chould be improved
Updated by Toshi MARUYAMA about 11 years ago
- File web-edit.png web-edit.png added
David Lukas Müller wrote:
5.05
with Web User Interface (HTML) --> good
Web edit form has same problem.
Updated by Toshi MARUYAMA about 11 years ago
You can see by following change.
diff --git a/app/views/issues/_attributes.html.erb b/app/views/issues/_attributes.html.erb
--- a/app/views/issues/_attributes.html.erb
+++ b/app/views/issues/_attributes.html.erb
@@ -63,7 +63,7 @@
<% end %>
<% if @issue.safe_attribute? 'estimated_hours' %>
-<p><%= f.text_field :estimated_hours, :size => 3, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
+<p><%= f.text_field :estimated_hours, :size => 6, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
<% end %>
<% if @issue.safe_attribute?('done_ratio') && @issue.leaf? && Issue.use_field_for_done_ratio? %>
Updated by Holger Just almost 10 years ago
- File 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis.patch 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis.patch added
The attached patch (which was extracted from Planio) fixes this issue for all float values in table cells. This patch thus addresses the concerns of Etienne above.
The patch works agains current trunk but should apply similarly to earlier versions. The used method is the one used in the QueriesHelper#column_value
method and thus should produce results similar to it.
Updated by Jan from Planio www.plan.io almost 10 years ago
- Assignee set to Jean-Baptiste Barth
In case you were still looking for easy fixes :)
Updated by Jean-Baptiste Barth almost 10 years ago
- Affected version changed from 2.1.2 to 2.6.0
I do :) First I'll try to add some tests to this part of the code but no pb I'll merge it after.
Updated by S. Ruttloff almost 7 years ago
Problem still exists in Redmine 3.3.2, but could fix it here:
/lib/redmine/export/pdf/issues_pdf_helper.rb
Search for
if value.is_a?(Date) format_date(value) elsif value.is_a?(Time) format_time(value) else value end
and replace by
if value.is_a?(Date) format_date(value) elsif value.is_a?(Time) format_time(value) elsif value.is_a?(Float) sprintf "%.2f", value else value end
Updated by Marius BĂLTEANU over 6 years ago
- File 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17037.patch added
- File before.png before.png added
- File after.png after.png added
- Assignee deleted (
Jean-Baptiste Barth)
Tested on current trunk (r17037) and the issue still occurs.
I've updated the patch from Holger Just to apply cleanly. I think that we can fix this issue in the next release.
Before:
After:
Updated by Mischa The Evil over 6 years ago
We might want some test coverage added if there isn't any yet, as Jean-Baptiste already suggested.
Updated by Marius BĂLTEANU over 6 years ago
- File deleted (
0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17037.patch)
Updated by Marius BĂLTEANU over 6 years ago
- File 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch added
Mischa The Evil wrote:
We might want some test coverage added if there isn't any yet, as Jean-Baptiste already suggested.
Attached an updated patch that contains the fix and a test strictly for this scenario. On top of this patch, we can add more tests in the future to improve the coverage.
Updated by Mischa The Evil over 6 years ago
- Subject changed from Issues PDF export - Spent time to Issues PDF export: Spent time/Float-values aren't rounded to 2 digits.
- Target version changed from Candidate for next minor release to 4.1.0
Thanks Holger and Marius.
Updated by Marius BĂLTEANU over 6 years ago
- File deleted (
0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch)
Updated by Marius BĂLTEANU over 6 years ago
- File 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch added
I had a typo in my previous patch.
Maybe we can deliver this fix earlier than Redmine 4.
Updated by Go MAEDA over 6 years ago
Marius, thank you for adding a test. But I encountered the following error. Could you look into it?
$ ruby test/unit/lib/redmine/export/pdf/issues_pdf_test.rb Run options: --seed 32491 # Running: F Failure: IssuesPdfHelperTest#test_fetch_row_values_should_round_float_values [test/unit/lib/redmine/export/pdf/issues_pdf_test.rb:32]: --- expected +++ actual @@ -1 +1 @@ -["2", "Add ingredients categories", "4.34"] +["2", "Add ingredients categories", "0.00"] bin/rails test test/unit/lib/redmine/export/pdf/issues_pdf_test.rb:23 Finished in 0.658523s, 1.5185 runs/s, 1.5185 assertions/s. 1 runs, 1 assertions, 1 failures, 0 errors, 0 skips
Updated by Marius BĂLTEANU over 6 years ago
- File deleted (
0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch)
Updated by Marius BĂLTEANU over 6 years ago
- File 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch 0001-Round-floats-to-2-digits-when-rendering-an-issue-lis_r17055.patch added
It should be fine now.
Updated by Go MAEDA over 6 years ago
- Status changed from Confirmed to Closed
- Assignee set to Go MAEDA
- Target version changed from 4.1.0 to 4.0.0
- Resolution set to Fixed
Committed in the trunk (r17059). Thank you.
Updated by Toshi MARUYAMA over 6 years ago
- Subject changed from Issues PDF export: Spent time/Float-values aren't rounded to 2 digits. to Issues PDF export: Spent time/Float-values aren't rounded to 2 digits
Updated by Marius BĂLTEANU over 6 years ago
- Related to Defect #28233: IssuesPdfHelperTest fails when run in isolation added